import _min from "lodash/min";
import _max from "lodash/max";
import _isString from "lodash/isString";

/**
 * getWidthFromWord - 通过字符串确定宽度
 * @param {String} word - 字符串
 * @param {Number} minWidth - 最小宽度
 * @param {Number} maxWidth - 最大宽度
 * @param {Number} [defaultWidth=100] - 默认宽度
 * @param {Number} [fontWidth=12] - 每个字符的宽度
 * @param {Number} [paddingWidth=36] - 补偿额外宽度
 */
export function getWidthFromWord(_ref) {
  var word = _ref.word,
      minWidth = _ref.minWidth,
      maxWidth = _ref.maxWidth,
      _ref$defaultWidth = _ref.defaultWidth,
      defaultWidth = _ref$defaultWidth === void 0 ? 100 : _ref$defaultWidth,
      _ref$fontWidth = _ref.fontWidth,
      fontWidth = _ref$fontWidth === void 0 ? 12 : _ref$fontWidth,
      _ref$paddingWidth = _ref.paddingWidth,
      paddingWidth = _ref$paddingWidth === void 0 ? 36 : _ref$paddingWidth;
  var ret = defaultWidth;

  if (_isString(word)) {
    ret = word.length * fontWidth;

    if (_min) {
      ret = _max([ret, minWidth]);
    }

    if (_max) {
      ret = _min([ret, maxWidth]);
    }

    ret += paddingWidth;
  }

  return ret;
}